1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var = ‘global’ # 全局变量
class Ren(object):
name = "人" # 公有属性/类属性
high = "一人高" # 公有属性/类属性
wight = "一人重" # 公有属性/类属性
__money = "我有十块钱" # 私有属性
var1 = "我是类属性、公有属性var1"
__var2 = "我是类的私有属性__var2"
# 公有方法
def run(self):
print(self.name) # 在类的内部可以调用公有属性
print("跑步")
def say(self):
lie = "我很欣赏你" # 局部变量
print(self.__money) # 在类的内部可以调用私有属性
print(lie) # 调用局部变量
def fun(self):
‘’‘对象的公有属性、私有属性只有在类实例化成对象时才有
’‘’
self.var2 = “我是对象的公有属性var2” # 只能通过对象访问,不能通过类名直接访问
self.__var3 = "我是对象的私有属性var3" # 只能通过类内部访问,不能通过类外部访问
var4 = "我是fun函数的局部变量var4"
if __name__ == '__main__':
zhangsan = Ren()
print(zhangsan.name) # 在类的外部可以调用公有属性
print(Ren.name) # 公有属性也可以通过类名直接被调用(所以公有属性也叫类属性)
print(zhangsan.__money) # 不能执行,因为私有属性不能被类的外部访问
print(Ren.__money) # 也不能执行,因为私有属性不能被类的外部访问,只有通过特殊的方法在调试时可以调用
zhangsan.say() # 可以执行,通过say()函数在类的内部调用__money,私有属性只能被类的内部访问

总结:

  1. 类由成员变量(属性)成员函数(方法)组成。
    1.1 成员变量有:共有公有属性(也叫类属性)私有属性
    1.2 公有属性(类属性):既可以在类的内部被访问(通过self.varName),也可以在类的外部被访问(通过instance.varName),也可以通过类名被直接访问(通过className.varName)。
    1.3 私有属性: 只能在类的内部被访问(在类中通过self.__varName访问),在类的外部均不能访问(instance.__varNameclassName.__varName都不能访问)。
    1.4 获取或更改私有属性,一般通过在类的内部定义方法来达到获取和更改私有属性的作用。
    1.5 在函数中定义的一般变量是局部变量。