python 成员
一.成员
1.实例变量 对象.属性=xxxx
class Person:
def __init__(self,name,id,gender,birth):
self.name = name
self.id = id
self.gender = gender
self.birth = birth p = Person('哈哈','','不详','1990-12-15')
print(p.birth) #p.birth就是实例变量
2.类变量 最好用类.变量 ,对象.变量也能用
class Person: country = '大清' 类变量 def __init__(self,name,gender):
self.name = name
self.gender = gender r = Person('张三','男')
r1 = Person('李四', '女') print(r.name)
print(r.gender)
print(r.country) 对象.类变量
print(Person.country) 类.类变量
3.实例方法
class Computer: # 实例方法
def play(self):
print('电脑可以扫雷') # 在定义实例方法的时候. 必须给出一个参数self
# 形参的第一个参数, 自动的把对象给传递进来
def work(self):
# print(self)
print('电脑用来工作') c = Computer()
c.work() # 调用的时候不需要手动给出self
4.类方法
class Preson: # 实例方法
def chi(self):
print('人会吃')
@classmethod # 装饰器. 此时这个方法是一个类方法
def he(cls): # 此时接受到的cls是类名
print('人会喝') # 用对象访问
p = Preson()
p.he() # 在调用类方法的时候. 默认的把类名传递给类方法 # 类方法一般用类名去访问
Preson.he()
5.静态方法
class Person: @staticmethod
def yue():
print('看见我就是静态方法') # 静态方法可以使用对象访问. 也可以使用类名访问. 但是一般推荐使用类名访问
p = Person()
p.yue() # 推荐使用类名访问
Person.yue()
6.属性
class Preson:
def __init__(self,name,gender,birth):
self.name = name
self.gender = gender
self.birth = birth # 年龄 -> 应该是算出来的. 而不是直接存储的
@property # 把一个方法更改成一个属性, 每次拿属性的时候会自动的去执行这个风法
# 方法的返回值就是属性值
def age(self):
return 2018-self.birth p1 = Preson('wusir','未知',2000)
print(p1.age) # 看着像一个变量一样使用. 实际上这里是调用的一个方法
print(p1.age) # p1.age = 26 # 不可以赋值, 因为age是一个方法不是变量 方法不能进行赋值操作
7.私有
class Person: _qie = '潘潘' # 类变量 def __init__(self,name,mini):
self.name = name
self._mini =mini # 私有内容 实例变量 def gaosu(self):
print(f"把秘密告诉了太白, 第二天所有人都知道了{self._mini}")
# print(Person.__qie) # 私有的类变量只能在类中调用 def __yue(self): # 私有的实例方法
print('我要和宝宝约') p = Person('wusir','和嫂子的故事')
# print(p.__mimi) # 私有的内容只能在类里面调用
p.gaosu()
python 成员的更多相关文章
- Python成员运算符
Python成员运算符 其他语言没有,是否包含运算符,主要应用在字符串或者集合中 测试实例中包含了一系列的成员,包括字符串,列表或元组. #使用场景01:字符串是否包含另外一个字符串? str01 = ...
- 由 '' in 'abc' return True 引发的思考----Python 成员测试操作
最近遇到判断字典中是否存在空字符串‘’,这个很好判断,直接用:‘’ in ['a','b','c'],就可以直接判断出来:但是当我对字符串使用 “in” 方法进行判断的时候,发现:‘’ in ‘abc ...
- Python成员运算,身份运算和流程控制
成员运算 in #判断--在--里面 print('a' in 'abcd') # 字符串判断a是否在abcd里面 print('you' in 'how are you') # 这种整体也可以判断 ...
- Python——成员变量
一.类变量 在类命名空间内定义的变量就属于类变量,python允许使用类来修改.读取类变量. 例: class a: b = '我是类变量' def c(self): print (a.b) # 通过 ...
- python - 类成员修饰符
在java,c#类的成员修饰符包括,公有.私有.程序集可用的.受保护的. 对于python来说,只有两个成员修饰符:公有成员,私有成员 成员修饰符是来修饰谁呢?当然是修饰成员了.那么python类的成 ...
- Python学习:17.Python面向对象(四、属性(特性),成员修饰符,类的特殊成员)
一.属性(特性) 普通方法去执行的时候,后面需要加括号,特性方法执行的时候和静态字段一样不需要不需要加括号. 特性方法不和字段同名. 特性方法不能传参数. 在我们定义数据库字段类的时候,往往需要对其中 ...
- python基础之运算符
算术运算符 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 31 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -11 * 乘 - 两个数相乘或是返回一个被重复 ...
- Python 面向对象 中高级
类成员: #字段 普通字段 属于对象 执行只能通过对象访问 静态字段 属于类 执行 既可以通过对象访问,也可以通过类访问 class Foo: def __init__(self,name): # 字 ...
- Python全栈开发day9
一.面向对象进阶 1.利用python反射查看面向对象成员 对于对象:反射既可以找对象,类的成员 对于类:反射只能找类中的成员 2.利用反射操作模块(查找类,创建对象,查找对象中字段) 1 2 3 4 ...
随机推荐
- 【python之路28】模块python与excel
一.可使用的第三方库 python中处理excel表格,常用的库有xlrd(读excel)表.xlwt(写excel)表.openpyxl(可读写excel表)等.xlrd读数据较大的excel表时效 ...
- JS random函数深入理解(转载)
转载自:(本文对读者有帮助的话请移步支持原作者) http://www.cnblogs.com/starof/p/4988516.html 一.预备知识 Math.ceil(); //向上取整. M ...
- 20190902+0903合集-NOIP模拟
一直没时间写QwQ 于是补一下. Day 1 晚饭吃的有点恶心…… $1s\,2s\,5s$ 还开 -O2 ?? 有点恐怖. T1 猛的一想: 把外面设成一个点, 向入口连一条权为排队时间的边 从出口 ...
- WWDC 上讲到的 Objective C / LLVM 改进
https://developer.apple.com/wwdc/videos/ Advances in Objective-C What's New in the LLVM Compiler 下面是 ...
- Lua报unexpected symbol near错误
如果Lua脚本没有错误,那可能是UTF8 BOM的问题
- Django快速创建新项目
Python免费视频含配套文件QQ124111294 https://pan.baidu.com/s/1bL5ml4 python.exe manage.py startapp app01 pytho ...
- sprite学习
CSS雪碧图,就是把所有的图表,按钮和图形包含在一个图像里面.它要求: 静态图片,不随用户信息变化而变化:小图片,图片容量比较小:加载量比较大. 使用这种技术可以减少Web浏览器发出的服务器请求,显著 ...
- Ubuntu下安装go语言
参考:http://golang.org/doc/install/source 1. 下载go源代码 sudo apt-get install mercurial hg clone -u releas ...
- Java加密AES算法及spring中应用
开门见山直接贴上代码 .AESUtil加密解密工具类 import java.security.Key; import java.security.SecureRandom; import java. ...
- C# 详解反射
原博客:http://www.cnblogs.com/Stephenchao/p/4481995.html 两个现实中的例子: 1.B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的 ...