-
编程思想
- 编程界的两大阵营
- 编程界的两大阵营
-
类与对象
- 数据类型:(1)不同的数据类型属于不同的类(2)使用内置函数查看数据类型
- 对象:100,99,520,都是int下包含的相似的不同个例,这个个例专业术语称为实例或对象。
- python中一切皆对象。
-
类的创建
- 创建类的语法
class Student:#Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
pass
#python中一切皆对象,Student是对象吗?内存有开空间吗 ?
print(id(Student))
print(type(Student))
print(Student)
- 类的组成
class Student:
native_place='吉林'#直接写在类里的变量,称为类属性
def __init__(self,name,age):
self.name=name #seif.name称为实体属性,进行了一个赋值的操作,将局部变量的name赋给实体属性
self.age=age
#实例方法
def eat(self):
print('学生在吃饭')
#静态方法
@saticmethod
def method():
print('静态方法')
@classmethod
def cm(cls):
print('类方法')
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
print('喝水')
- 对象的创建
class Student:
native_place='吉林'
def __init__(self,name,age):
self.name=name
self.age=age
def eat(self):
print('学生在吃饭')
#创建student类的实例对象
stu1=Student('张三',20)
print(id(stu1))
print(type(stu1))
print(stu1)
stu1.eat()#学生在吃饭
print(stu1.name)#张三
print(stu1.age)#20
Student.eat(stu1)#学生在吃饭,调用Student中的eat方法
#类名.方法名(类的对象),实际上就是方法定义处的self
- 类属性,类方法,静态方法
#类属性:类种方法外的变量,被该类的所有对象所共享
#类方法:使用@classmethod修饰的方法,使用类名直接访问的方法
#静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法
#类属性的使用方式
class Student:
native_place='吉林'
def __init__(self,name,age):
self.name=name
self.age=age
stu1=Student('张三',20)
stu2=Student('李四',30)
print(stu1.native_place)
print(stu2.native_place)
Student.native_place='天津'
print(stu1.native_place)
print(stu2.native_place)
- 动态绑定属性与方法
- Python是动态语言,在创建对象之后,可以动态地绑定属性和方法
- Python是动态语言,在创建对象之后,可以动态地绑定属性和方法
#一个Student类可以创建N多个Student类的实例对象,每个实体对象的属性值不同
class Student:
def __init__(self,name,age):
self.name=name
self.age=age
def eat(self):
print(self.name+'在吃饭')
stu1=Student('张三',20)
stu2=Student('李四',30)
print(id(stu1))
print(id(stu2))
#为stu2动态绑定性别属性
stu2.gender='女'
print(stu1.name,stu1.age)#但是stu1.gender不存在
print(stu2.name,stu2.age,stu2.gender)#李四,30,女
#动态绑定方法
def show():
print('你好')
stu1.show=show
stu1.show() #你好
stu2.show() #Error