实例方法是指在类中定义的函数。该函数是一种在类的实例上操作的函数。 同__init__()方法一样,实例方法的第一个参数必须是self,并且必须包含一个self参数。
数据成员是指在类中定义的变量,即属性(对象的特征)。根据定义位置,属性(成员变量) 有两种:一种是实例属性,另一种是类属性(类变量)。
类属性的添加与访问方式同对象属性,只是把self关键字换成类名
class Information(object): def __init__(self, name, age): self.name = name self.age = age info = Information('杜甫', 20) info.sex = '男'
对象名.属性名
print(info.sex)
类中定义的属性和方法默认为公有属性和方法,该类的对象可以任意访问类的公有成员。
为了契合封装原则,保证类中的代码不被外部代码轻易访问。 Python支持将类中的成员设 置为私有成员,在一定程度上限制对象对类成员的访问。
对象无法直接访问私有成员
私有属性可在公有方法中通过指代对象本身的默认参数“self”访问, 类外部可通过公有方法间接获取类的私有属性。
私有方法同样在公有方法中通过参数“self”访问。
Class语句和for、while语句一样,都是代码块,即定义类就是执行代码块。
class myClass: print("This is my class")
执行上述代码后,会输出“class block”。
在实例方法中无法修改类属性的值,但在类方法中可以修改类属性的值。
class myClass: # 类属性 msg = '我是类的属性' # 此注解表示该方法是一个类方法 @classmethod # cls代表当前这个类本身 def showMsg(cls): # 改变类属性的值 cls.msg = 'really' print(cls.msg) # 调用类方法 myClass.showMsg()
可有对象调用也可以有类调用
示例:定义一个包含属性num与静态方法static_method()的类Example。
class Example: num = 10 @staticmethod def static_method(): print(f"类属性的值为: {Example.num}") print("静态方法") ex = Example() ex.static_method() print('-----------') Example.static_method()