标签:函数 定义 过程 方法 .com print lan strong ror
公有属性定义 公有属性也叫作类变量
class role(): # 传参数 # 公有属性都在这里定义 # 在类里直接定义的属性即是公有属性 nationality = ‘JP‘ def __init__(self,name,role,weapon,life_value=100,moneny=15000): # 构造函数 # 实例化过程中做一些类的初始化工作 # 成员属性 self.name = name self.role = role self.weapon = weapon self.life_value = life_value self.moneny = moneny self.__heart = ‘normal‘ # 私有属性 def shot(self): # 类的方法,功能(动态属性) print("shotting") # 定义一个方法用来对外访问 def show_heart(self): return self.__heart def got_shot(self): print("on,%s got shoot..." % self.name) def buy_gun(self,gun_name): print("%s just bought %s" %(self.name,gun_name)) self.weapon = gun_name b1 = role(‘mike‘,‘警察‘,‘AK47‘) b2 = role(‘mike‘,‘警犬‘,‘B13‘) print(b1.weapon) # AK47 打印的是成员属性 # b2武器也是成员属性 # 想让 b1 b2 共享武器需要公有属性 print(b1.nationality) # JP print(b2.nationality) # JP
修改公有属性
class role(): # 传参数 # 公有属性都在这里定义 # 在类里直接定义的属性即是公有属性 nationality = ‘JP‘ def __init__(self,name,role,weapon,life_value=100,moneny=15000): # 构造函数 # 实例化过程中做一些类的初始化工作 # 成员属性 self.name = name self.role = role self.weapon = weapon self.life_value = life_value self.moneny = moneny self.__heart = ‘normal‘ # 私有属性 def shot(self): # 类的方法,功能(动态属性) print("shotting") # 定义一个方法用来对外访问 def show_heart(self): return self.__heart def got_shot(self): print("on,%s got shoot..." % self.name) def buy_gun(self,gun_name): print("%s just bought %s" %(self.name,gun_name)) self.weapon = gun_name b1 = role(‘mike‘,‘警察‘,‘AK47‘) b2 = role(‘mike‘,‘警犬‘,‘B13‘) print(b1.weapon) # AK47 打印的是成员属性 # b2武器也是成员属性 # 想让 b1 b2 共享武器需要公有属性 b1.nationality = ‘Thailand‘ print(b1.nationality) # Thailand print(b2.nationality) # JP
更改类的公有属性
class role(): # 传参数 # 公有属性都在这里定义 # 在类里直接定义的属性即是公有属性 nationality = ‘JP‘ def __init__(self,name,role,weapon,life_value=100,moneny=15000): # 构造函数 # 实例化过程中做一些类的初始化工作 # 成员属性 self.name = name self.role = role self.weapon = weapon self.life_value = life_value self.moneny = moneny self.__heart = ‘normal‘ # 私有属性 def shot(self): # 类的方法,功能(动态属性) print("shotting") # 定义一个方法用来对外访问 def show_heart(self): return self.__heart def got_shot(self): print("on,%s got shoot..." % self.name) def buy_gun(self,gun_name): print("%s just bought %s" %(self.name,gun_name)) self.weapon = gun_name b1 = role(‘mike‘,‘警察‘,‘AK47‘) b2 = role(‘mike‘,‘警犬‘,‘B13‘) print(b1.weapon) # AK47 打印的是成员属性 # b2武器也是成员属性 # 想让 b1 b2 共享武器需要公有属性 # 更改类的公有属性 role.nationality = ‘Thailand‘ # 两个都改了 print(b1.nationality) # Thailand print(b2.nationality) # Thailand
class role(): # 传参数 # 公有属性都在这里定义 # 在类里直接定义的属性即是公有属性 nationality = ‘JP‘ def __init__(self,name,role,weapon,life_value=100,moneny=15000): # 构造函数 # 实例化过程中做一些类的初始化工作 # 成员属性 self.name = name self.role = role self.weapon = weapon self.life_value = life_value self.moneny = moneny self.__heart = ‘normal‘ # 私有属性 def shot(self): # 类的方法,功能(动态属性) print("shotting") # 定义一个方法用来对外访问 def show_heart(self): return self.__heart def got_shot(self): print("on,%s got shoot..." % self.name) def buy_gun(self,gun_name): print("%s just bought %s" %(self.name,gun_name)) self.weapon = gun_name b1 = role(‘mike‘,‘警察‘,‘AK47‘) b2 = role(‘mike‘,‘警犬‘,‘B13‘) print(b1.weapon) # AK47 打印的是成员属性 # b2武器也是成员属性 # 想让 b1 b2 共享武器需要公有属性 # 更改类的公有属性 role.nationality = ‘Thailand‘ # 两个都改了 print(b1.nationality) # Thailand print(b2.nationality) # Thailand print("-"*40) b1.nationality = ‘china‘ print(b1.nationality) print(b2.nationality) ‘‘‘ AK47 Thailand Thailand ---------------------------------------- china Thailand ‘‘‘
还没有实例化之前 就存在定义公有属性 公有属性就存在内存里
公有属性存在类的内存里, 可以省内存 不用放在构造函数里 每次实例化都保存在每个对象内存里
class role(): # 传参数 # 公有属性都在这里定义 # 在类里直接定义的属性即是公有属性 nationality = ‘JP‘ def __init__(self,name,role,weapon,life_value=100,moneny=15000): # 构造函数 # 实例化过程中做一些类的初始化工作 # 成员属性 self.name = name self.role = role self.weapon = weapon self.life_value = life_value self.moneny = moneny self.__heart = ‘normal‘ # 私有属性 def shot(self): # 类的方法,功能(动态属性) print("shotting") # 定义一个方法用来对外访问 def show_heart(self): return self.__heart def got_shot(self): print("on,%s got shoot..." % self.name) def buy_gun(self,gun_name): print("%s just bought %s" %(self.name,gun_name)) self.weapon = gun_name print(role.nationality) # JP # b1 = role(‘mike‘,‘警察‘,‘AK47‘) # b2 = role(‘mike‘,‘警犬‘,‘B13‘) # # 更改类的公有属性 # role.nationality = ‘Thailand‘ # # # 两个都改了 # print(b1.nationality) # Thailand # print(b2.nationality) # Thailand # # # print("-"*40) # b1.nationality = ‘china‘ # print(b1.nationality) # print(b2.nationality)
class role(): # 传参数 # 公有属性都在这里定义 # 在类里直接定义的属性即是公有属性 nationality = ‘JP‘ def __init__(self,name,role,weapon,life_value=100,moneny=15000): # 构造函数 # 实例化过程中做一些类的初始化工作 # 成员属性 self.name = name self.role = role self.weapon = weapon self.life_value = life_value self.moneny = moneny self.__heart = ‘normal‘ # 私有属性 def shot(self): # 类的方法,功能(动态属性) print("shotting") # 定义一个方法用来对外访问 def show_heart(self): return self.__heart def got_shot(self): print("on,%s got shoot..." % self.name) def buy_gun(self,gun_name): print("%s just bought %s" %(self.name,gun_name)) self.weapon = gun_name b1 = role(‘mike‘,‘警察‘,‘AK47‘) b2 = role(‘mike‘,‘警犬‘,‘B13‘) # 两个都改了 print(b1.nationality) print(b2.nationality) # 更改类的公有属性 role.nationality = ‘china‘ print(b1.nationality, b2.nationality) ‘‘‘ JP JP china china ‘‘‘
class role(): # 传参数 # 公有属性都在这里定义 # 在类里直接定义的属性即是公有属性 nationality = ‘JP‘ def __init__(self,name,role,weapon,life_value=100,moneny=15000): # 构造函数 # 实例化过程中做一些类的初始化工作 # 成员属性 self.name = name self.role = role self.weapon = weapon self.life_value = life_value self.moneny = moneny self.__heart = ‘normal‘ # 私有属性 def shot(self): # 类的方法,功能(动态属性) print("shotting") # 定义一个方法用来对外访问 def show_heart(self): return self.__heart def got_shot(self): print("on,%s got shoot..." % self.name) def buy_gun(self,gun_name): print("%s just bought %s" %(self.name,gun_name)) self.weapon = gun_name b1 = role(‘mike‘,‘警察‘,‘AK47‘) b2 = role(‘mike‘,‘警犬‘,‘B13‘) # 两个都改了 print(b1.nationality) print(b2.nationality) # 更改类的公有属性 role.nationality = ‘china‘ print(b1.nationality, b2.nationality) print("-"*40) b1.nationality = "USA" print(b1.nationality) print(b2.nationality) ‘‘‘ JP JP china china ---------------------------------------- USA china ‘‘‘
在本地创建一个新的 r1.nationality = CN 与Role 没有半点关系
函数 方法也是公有属性
class role(): # 传参数 # 公有属性都在这里定义 # 在类里直接定义的属性即是公有属性 nationality = ‘JP‘ def __init__(self,name,role,weapon,life_value=100,moneny=15000): # 构造函数 # 实例化过程中做一些类的初始化工作 # 成员属性 self.name = name self.role = role self.weapon = weapon self.life_value = life_value self.moneny = moneny self.__heart = ‘normal‘ # 私有属性 # 这里的函数 方法 也是公有属性 def shot(self): # 类的方法,功能(动态属性) print("shotting") # 定义一个方法用来对外访问 def show_heart(self): return self.__heart def got_shot(self): print("on,%s got shoot..." % self.name) def buy_gun(self,gun_name): print("%s just bought %s" %(self.name,gun_name)) self.weapon = gun_name b1 = role(‘mike‘,‘警察‘,‘AK47‘) b2 = role(‘mike‘,‘警犬‘,‘B13‘) def shot2(self): print("my shot",self.name) b1.shot = shot2 b1.shot(b1) # 需要手动传参数 b2.shot() # 用原来对象方法 ‘‘‘ my shot mike shotting ‘‘‘
python 公有属性可以用类访问,也可以用对象访问
公有属性只能用类去访问
class po: country = "中国" def __init__(self, name): self.name = name s1 = po("河南") # python 公有属性可以用类访问,也可以用对象访问 print(po.country) print(s1.country) ‘‘‘ 中国 中国 ‘‘‘
私有公有属性 对外不能访问
class Foo(object): __name = "mike" print(Foo.__name) ‘‘‘ Traceback (most recent call last): File "C:/Users/Administrator.QH-20170325TNQR/PycharmProjects/SSSSS/SS/day7/S13 面向对象/私有公有属性 .py", line 11, in <module> print(Foo.__name) AttributeError: type object ‘Foo‘ has no attribute ‘__name‘ ‘‘‘
在内部普通方法可以访问
class Foo(object): __name = "mike" def __init__(self, name): self.name = name def f1(self): print(Foo.__name) obj = Foo("jack") obj.f1() # mike
使用静态方法 不创建对象
class Foo(object): __name = "mike" def __init__(self, name): self.name = name @staticmethod def f1(): print(Foo.__name) Foo.f1() # mike
标签:函数 定义 过程 方法 .com print lan strong ror
原文地址:https://www.cnblogs.com/mingerlcm/p/8409870.html