公有属性定义  公有属性也叫作类变量  静态字段

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

python 面向对象 公有属性的更多相关文章

  1. python 面向对象 公有属性 用在哪里

    公有属性也可以叫做静态字段 如果每个对象都有一个共同的值 , 应该把它设置为公有属性 公有属性使用场景,每个对象中保存相同的东西时,可以使用公有属性 类找公有属性 过程

  2. python -- 面向对象编程(属性、方法)

    一.属性 对象的属性(attribute)也叫做数据成员(data member). 如果想指向某个对象的属性,可以使用格式: object.attribute 属性又分为:私有属性和公有属性. 私有 ...

  3. python 面向对象 私有属性

    __init__构造函数 self.name = name # 属性, 实例变量,成员变量,字段 def sayhi()# 方法, 动态属性 私有属性不对外看到 前面加上__ class role() ...

  4. python面向对象之类属性,实例属性

    python中的属性分为类属性和实例属性,之前已经说过一些,这里主要是对类属性与实例属性的增删改查 首先是对类属性的增删改查,下面这个是对类属性的修改,在书写类时,已经对类属性occupation进行 ...

  5. python私有公有属性

    python中,类内方法外的变量叫属性,类内方法内的变量叫字段.他们的私有公有访问方法类似. class C: __name="私有属性" def func(self): prin ...

  6. Python面向对象之类属性类方法静态方法

    类的结构 实例 使用面向对象开发时,第一步是设计类: 当使用 类名() 创建对象时,会自动执行以下操作: 1.为对象在内存中分配空间--创建对象: 2.为对象的属性 设置初始值--初始化方法(init ...

  7. Python面向对象之属性

    属性的定义和调用 1,定义时,在普通方法的基础上添加@property装饰器 2,定义时,属性仅有一个self参数 3,调用时,无需括号 vim day7-8.py #!/usr/bin/python ...

  8. Python面向对象 | 类属性

    property property是一个装饰器函数,可以将一个方法伪装成属性,调用的时候可以不用加().@property被装饰的方法,是不能传参数的,因为它伪装成属性了. 装饰器的使用:在要装饰的函 ...

  9. Python面向对象—类属性和实例属性

    属性:就是属于一个对象的数据或函数元素 类有类方法.实例方法.静态方法.类数据属性(类变量)和实例数据属性(实例变量). 类属性:包括类方法和类变量,可以通过类或实例来访问,只能通过类来修改. 实例属 ...

随机推荐

  1. Spring-bean的作用域

    在大多数情况下,单例bean是很理想的方案.初始化和垃圾回收对象实例所带来的的成本只留给一些小规模任务,在这些任务中,让对象保持无状态并且在应用中反复重用这些对象可能并不合理.在这种情况下,将clas ...

  2. 拼凑sql语句另外一个方法

    经常拼凑sql语句,经常是手工拼写 也可以利用字典另外一个模式拼凑 这里采用的是Dictionary中的Aggregate方法. 代码如下: static void Main(string[] arg ...

  3. 如何创建 SVN 服务器,并搭建自己的 SVN 仓库

    SVN是一个广泛使用的版本控制系统,在日常工作中有广泛的应用空间,比如文档管理,我们就可以搭建一个 SVN 仓库,日常需要归类保存的文档统统上传到仓库中,那如何创建 SVN 服务器, 又如何搭建 SV ...

  4. 【iOS与EV3混合机器人编程系列之三】编写EV3 Port Viewer 应用监測EV3port数据

    在前两篇文章中,我们对iOS与EV3混合机器人编程做了一个主要的设想.而且介绍了要完毕项目所需的软硬件准备和知识准备. 那么在今天这一篇文章中,我们将直接真正開始项目实践. ==第一个项目: EV3 ...

  5. 7 -- Spring的基本用法 -- 4... 使用 Spring 容器:Spring 容器BeanFactory、ApplicationContext;ApplicationContext 的国际化支持;ApplicationContext 的事件机制;让Bean获取Spring容器;Spring容器中的Bean

    7.4 使用 Spring 容器 Spring 有两个核心接口:BeanFactory 和 ApplicationContext,其中ApplicationContext 是 BeanFactory ...

  6. hadoop程序MapReduce之DataDeduplication

    需求:去掉文件中重复的数据. 样板:data.log 2016-3-1 a 2016-3-2 b 2016-3-2 c         2016-3-2 b 输出结果: 2016-3-1 a 2016 ...

  7. UML设计,可以设计程序的用例图、类图、活动图等_SurfaceView

    « 对Cocos2d游戏引擎有一定的了解和实践,并接触过处理3D图形和模型库的OpenGL 在进行游戏界面的绘制工作中,需要处理大量的工作,这些工作有很多共性的操作:并且对于游戏界面的切换,元素动作的 ...

  8. 如何利用h5将视频设置为背景

    我们常常有着将视频作为网页背景的需要,但是在设置时也经常差强人意,今天设置了一下,可以基本达到要求了,可能有些小细节做的不是太好,希望指出来,一起进步 第一步:准备工作 工欲善其事必先利其器,我们首先 ...

  9. MUI 分享功能(微信、QQ 、朋友圈)

    配置文件:manifest.json plus ->plugins 下边 "share": {/*配置应用使用分享功能,参考http://ask.dcloud.net.cn/ ...

  10. 【算法】深度优先搜索(DFS)III

    1. DFS生成排列 众所周知,1,2…n的排列一共有n!个,因此生成全排列至少需要n!的时间复杂度.如果用循环来生成排列,当n稍大时,内外循环会非常之多.可以用DFS模拟解决,生成0 … n-1的排 ...