类的创建
class Student:#Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
native_place='江苏'#直接写在类里的变量称为类属性
def __init__(self,name,age):
self.name=name #self.name称为实体属性,进行了一个赋值的操作,将局部变量的name值赋给了实体属性
self.age=age
#实例方法
def eat(self):
print('学生在吃饭...')
#静态方法
@staticmethod
def method():
print('我使用了staticmethod进行修饰,所以我是静态方法')
#类方法
@classmethod
def cm(cls):
print('我是类方法,因为我使用了classmethod进行修饰')
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
print('喝水')
对象的创建
对象的创建又称为类的实例化
语法:实例名=类名()
类属性:类中方法外的变量称为类属性,被该类的所有对象所共享
类方法:使用@classmethod修饰的方法,使用类名直接访问的方法
静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法
class Student:#Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
native_place='江苏'#直接写在类里的变量称为类属性
def __init__(self,name,age):
self.name=name #self.name称为实体属性,进行了一个赋值的操作,将局部变量的name值赋给了实体属性
self.age=age
#实例方法
def eat(self):
print('学生在吃饭...')
#静态方法
@staticmethod
def method():
print('我使用了staticmethod进行修饰,所以我是静态方法')
#类方法
@classmethod
def cm(cls):
print('我是类方法,因为我使用了classmethod进行修饰')
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
print('喝水')
#创建Student类的对象
stu1=Student('张三',20)
print(type(stu1))#<class '__main__.Student'>
print(stu1.native_place)
stu1.eat()
Student.eat(stu1)#和上一句代码功能相同,都是调用Student中的eat方法
stu1.cm()
stu1.method()
print(stu1.name)
print(stu1.age)
动态绑定属性和方法
Python是动态语言,在创建对象之后,可以动态地绑定属性和方法
class Student:#Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
def __init__(self,name,age):
self.name=name #self.name称为实体属性,进行了一个赋值的操作,将局部变量的name值赋给了实体属性
self.age=age
def eat(self):
print(self.name+'在吃饭')
stu1=Student('张三',20)
stu2=Student('李四',21)
print('-----为stu2动态绑定性别属性')
stu2.gender='女'
print(stu1.name,stu1.age)
print(stu2.name,stu2.age,stu2.gender)
print('--------')
stu1.eat()
stu2.eat()
def show():
print('定义在类之外的,称函数')
stu1.show=show
stu1.show()