面向对象:
1类,具有相同属性和技能的一类事物 class Person:
2.对象,具体的类的表现,具体的实例 p = Person("alex",18) 具体的实例化空间
class Person:
类体分两部分: 变量部分
方法(函数)类体部分
class Person:
mind = "有思想的" # 变量部分,静态变量,静态字段
def __init__(self): # 构造方法
def func(self): #方法(函数)部分,动态变量
print(333)
类名的角度:
# 由于可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为
# # 必须绑定的属性强制性的填写进去,通过定义一个特殊的__init__方法
# # 在创建实例的时候,把 name , age ,sex 等属性捆绑上去.
# #
# class Person:
# money = "货币"
# def __init__(self,name,age,sex):
# self.name = name
# self.age = age
# self.sex = sex
# #注:__init__是双下划线
#
# #注意:
# # __init__方法第一个参数永远是self,表示创建的实例本身,
# # 因此在__init__方法内部,就可以把各种属性绑定到self
# # 因此self就是指向创建的实例本身
# # 有了__init__方法,在创建实例的时候,就不能传入空的参数了
# # 必须传入与__init__方法匹配的参数,但self需要要传,python
# # 解释器会自己把实例变量传进去
# # 静态操作:
# print(Person.money) # 货币 查询
# Person.moind = "有思想的"
# # print(Person.__dict__) # 增加 'moind': '有思想的'}
# del Person.money #
# print(Person.__dict__)
#
# # p = Person("alex",80,"男")
# # print(p.age) # 80
# # print(p.__dict__) # {'name': 'alex', 'age': 80, 'sex': '男'} 对象操作类中的静态变量 : 只能查
# # print(p.name) # 80 查
#
# # print(Person.__dict__) #查询类中所有的内容
#
# # 和普通方法相比,在类中定义的函数只有一点不同,就是第一个参数
# # 永远都是self,并且调用时,不用传递参数.除此之外,类的方法与普通方法
# # 没有什么区别
#
# # 总结:
# # 1.__dict__:可以查询类和对象中的类容,并且以字典形式返回
# # 2.类名+()---实例化一个对象
# # 3.实例化对象之后会自动执行__init__方法,并且将对象传给self参数
# # 4.给对象封装相应的属性
# #
# # 2.数据封装
# # 面向对象编程的一个重要特点就是数据封装
# # 在Person类中,每个实例都拥有各自的 name,age,sex数据
# # Person实例化本身就拥有这些数据,要访问这些数据,就没有
# # 必要从外面的函数去访问,可以直接在Person类的内部定义访问数据的
# # 函数,这样就把"数据"封装起来了.这些封装数据的函数时和Person
# # 类本身关联起来,我们称为类的方法.
# # class Person:
# # def __init__(self,name,age,sex):
# # self.name = name
# # self.age = age
# # self.sex = sex
# # def func(self): #
# # print("%s,%s,%s" %(self.name,self.age,self.sex))
# #
# # p = Person("alex",10,"男")
# # p.func() # alex,10,男
# # 这样一来,我们从外部看Person类,就只需要知道,创建实例需要给出 name,age,sex
# # 如何打印,都是在Person类的内部定义的,这些数据和逻辑被"封装"起来了,调用
# # 很容易,但却不知道内部实现细节.封装的另外一个好处就是可以给Person类增加形容方法
# #
# # 总结:
# # 1.类创建的是实例的模板,而实例则是一个具体的对象,各个实例拥有的数据都是
# # 相互独立的,互不影响>
# # 2.方法就是与实例绑定的函数,和普通函数不同,方法可以直接返回实例的数据
# # 3.python允许实例变量绑定任何数据,也就是说,对于两个实例变量,虽然它们
# # 都是同一类的不同