我正在编写我的python类并像这样实例化它们
class calculations_class():
def calculate(self):
return True
Calculations = calculations_class()
我想知道我是否正确地执行此操作,或者是否有其他方法可以实例化它们。谢谢!
答案 0 :(得分:7)
除了其他答案正确指出的命名约定问题之外,你基本上没问题:调用类确实是迄今为止实例化该类的最常用方法。如果您需要任何每个实例初始化(最常见的是将某些实例属性设置为初始值),请务必定义执行它的__init__
方法:
class Calculations(object):
def __init__(self):
self.running_total = 0 # or w/ever
def calculate(self):
...
calc = Calculations()
当您因某种原因绕过初始化部分时(例如,在从某个文件,数据库中反序列化实例的过程中),通常会出现其他罕见的实例化类的方法。或来自其他进程的通信 - pickle
模块是需要这种高级方法的一个很好的例子。在Python学习经历的这个阶段,我认为你根本不应该担心它们。
答案 1 :(得分:4)
嗯,类名往往是大写的(和camelcase),实例名称往往是小写的,但进一步说就是这样。
class CalculationsClass():
def calculate(self):
return True
my_calc_instance = CalculationsClass()
答案 2 :(得分:1)
这是正确的。
答案 3 :(得分:0)
这是正确的方法。您应该采取不同的做法:类名称应以大写字母开头,变量使用小写字母。
答案 4 :(得分:-1)
我倾向于使用以下格式:
class CCalculations(): #Classes always begin with "C"
def __init__(self):
self.foo = 0
self.fooBar = 0 #Variables use camelCase
def DoCalculations(self): #Methods use uppercase
return true
def getFoo(self):
return self.foo #getters and setters use camelCase
原因各不相同:
将“C”放在类名前面可以轻松分离什么是类,什么是方法/函数。如果你使用一个好的IDE(我使用WingIDE),这将特别有用。因此,所有类都位于一个位置,因为它们都以C开头。此外,它使代码更具可读性,因为您确定您正在实例化类而不是调用函数。
对常规方法使用大写字母,对getter和setter使用camelCase意味着更重要的常规方法不会使用gets / sets来混淆命名空间。因此,在课堂上,因为事情按照ASCII-betical的顺序排列,你的真实方法是第一位的,而你的吸气剂和制定者则是最后的。
班级名称应为名词。方法应该是描述名词可以做的动作的动词。属性应该是描述名词外观的名词。