1. 程式人生 > 資訊 >被網路安全審查、App 全下架,滴滴股價開跌超 7% ,近四個交易日已累跌約 36%

被網路安全審查、App 全下架,滴滴股價開跌超 7% ,近四個交易日已累跌約 36%

  • 面向過程概念
  • 面向物件概念
  • 類的定義和物件的產生
  • 屬性或者方法的查詢
  • 練習

面向過程:

  • 不是一門技術,是一種程式設計思想
  • 核心是過程 過程就是想幹什麼,再敢什麼,最後幹什麼,機械式思維
  • 案例:
    • 把大象關進冰箱
      1. 開啟冰箱
      2. 把大象放進去
      3. 關閉冰箱
  • 案例二
    • 優點:
      • 複雜的問題簡單化,流程化
    • 缺點:
      • 擴充套件性差,可維護性差

應用場景:對擴充套件性要求不高

問題:

  • 實現使用者註冊:
    1. 輸入使用者名稱密碼
    2. 驗證引數
    3. 註冊

面向物件:

  • 核心是 '物件' 二字

    1. 程式裡面

      ​ 物件就是盛放資料屬性和功能的容器,

    2. 現實中

      ​ 物件就是特徵與技能的結合體

      Linux:一切皆檔案

  • 優點:擴充套件性強

  • 缺點:程式設計複雜度高

  • 應用場景:對擴充套件性要求較高的場景,比如:qq,微信

  • 案例:

    ​ 西天取經

    ​ 學生選課內容

類和物件

物件:特徵和節能的結合體

類:一系列物件相似的特徵和相似的技能的結合體

強調:站在不同的角度,劃分的分類是不一樣的

問題: 先有類還是先有物件

  1. 現實中:

    必須先有物件才有類

    1. 程式中:

    必須先定義類,再呼叫類產生物件

專業語法

定義類

class 類名:
    psaa
    
def 函式名():
    pass
    
類名:  一般是首字母大寫

類的定義階段發生了什麼是?

1. 立即執行類體程式碼
2. 產生了類的名稱空間,把類裡面定義的名字都扔到字典裡
3. 把類的名稱空間繫結為類名	類名-dic_

產生物件發生了幾件事

​ 1. 產生一個空物件,並且把該空物件當作第一個引數傳遞

呼叫類的過程就是例項化,得到的物件就是一個例項

定製物件自己獨有的屬性

# 版本3


"""
    產生物件發生了幾件事?
        1. 產生一個空物件,並且把該空物件當成第一個引數傳遞
"""

class Student():
    school = 'SH'

    # 初始化方法
    def __init__(stu_obj, name, age, gender, courses=[]):
        stu_obj.name = name  # stu1.__dict__['name'] = 'egon'
        stu_obj.age = age  # stu1.__dict__['age'] = 20
        stu_obj.gender = gender  # stu1.__dict__['gender'] = 'male'
        stu_obj.courses = courses  # stu1.__dict__['courses'] = []

    def choose_course(stu_dic, course):
        stu_dic['courses'].append(course)
        print("%s 選課成功 %s" % (stu_dic['name'], stu_dic['courses']))


    # print(123)


# 類的名稱空間
# print(Student.__dict__)
stu1 = Student('egon', 18 ,'male')

print(stu1.__dict__)
# stu2 = Student()

# stu1.name = 'egon'      # stu1.__dict__['name'] = 'egon'
# stu1.age = 18           # stu1.__dict__['age'] = 20
# stu1.gender = 'male'    # stu1.__dict__['gender'] = 'male'
# stu1.courses = []       # stu1.__dict__['courses'] = []
#
#
# stu2.name = 'tom'      # stu2.__dict__['name'] = 'egon'
# stu2.age = 18           # stu2.__dict__['age'] = 20
# stu2.gender = 'male'    # stu2.__dict__['gender'] = 'male'
# stu2.courses = []       # stu2.__dict__['courses'] = []


#
# init(stu1, 'egon', 18, 'male')
# init(stu2, 'tom', 18, 'male')
#
#
# print(stu1.__dict__)
# print(stu2.__dict__)

屬性查詢

class Student():
    school = 'SH'
    # 初始化方法
    def __init__(stu_obj, name, age, gender, courses=[]):
        stu_obj.name = name  # stu1.__dict__['name'] = 'egon'
        stu_obj.age = age  # stu1.__dict__['age'] = 20
        stu_obj.gender = gender  # stu1.__dict__['gender'] = 'male'
        stu_obj.courses = courses  # stu1.__dict__['courses'] = []

    def choose_course(self, course):
        self.courses.append(course)
        print("%s 選課成功 %s" % (self.name, self.courses))


    # print(123)


# 類的名稱空間
# print(Student.__dict__)
stu1 = Student('egon', 18 ,'male')
stu2 = Student('tom', 18 ,'male')

# print(stu1.__dict__)

# 1 類的屬性查詢
# print(Student.__dict__['school'])

# # Student.__dict__['xxx'] = 'xxx'
# del Student.__dict__['xxx']

# Student.xxx = 'xxx'
#
# del  Student.xxx

# Student.school = 'MMM'
# print(Student.school)

# print(Student.choose_course)
# Student.choose_course(stu1, 'python')


# 物件操作屬性  點語法取值,先從自己物件中取,如果沒有,在取類中取值
# print(stu1.school)
#
# stu1.xxx = 'x'
# del  stu1.xxx
# stu1.school = 'y'

# Student.school = 'x'
# print(stu1.school)


# 類中的屬性是共享給所有物件的,但是,類中的方法是給物件用的, 並且,把物件自己當成第一個引數傳遞
# stu1.school = 'y'
# print(stu1.school)
#
# print(stu2.school)

stu1.choose_course('python')